package com.atguigu.gulimall.search.vo;

import com.atguigu.common.to_and_vo.es.SkuEsModel;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 对查询参数返回的vo对象
 */
@Data
public class SearchResult {
    private List<SkuEsModel> products; //从es中返回的vo对象，查询到的所有商品信息
    /*
    以下是分页信息
     */
    private Integer pageNum = 1;  //当前页面是第几页
    private Long total;  //总记录数
    private Integer totalPages;  //总页码
    private List<Integer> pageNavs = new ArrayList<>();//从0到总页码数减一构成的集合，这样好用在thymeleaf中遍历

    //面包屑导航
    private List<NavVo> navs = new ArrayList<>();
    private List<Long> attrIds = new ArrayList<>();



    @Data
    public static class NavVo{
        private String navName;
        private String navValue;
        private String link; //跳转地址
    }

    /**
     * 一下是通过分类查询到的所有品牌
     */
    private List<BrandVo> brands;
    @Data
    public static class BrandVo{
        private Long brandId;
        private String brandName;
        private String brandImg;
    }

    /**
     * 以下是该商品能出现的所有属性
     */
    private List<AttrVo> attrs;//当前查寻到的结果所涉及到的所有属性
    @Data
    public static class AttrVo{
        private Long attrId;
        private String attrName;
        private List<String> attrValue;
    }

    /**
     * 以下是查询到的结果所涉及到的所有分类信息
     */
    private List<CatalogVo> catalogs;
    @Data
    public static class CatalogVo{
        private Long catalogId;
        private String catalogName;
    }
}
